// deepHelper的递归对标的是每一个级别的目录（0级别的目录 1级别的目录）
// deepHelper: 代表解析一整个电子书章节目录的函数
function deepHelper(arr, label, children, originArr) {
  // debugger
  deepHelper.level++
  // 如果done为true 代表当前这个章节已经被处理
  if (arr.filter(item => !item.done).length === 0) return
  // 处理逻辑(每一次deepHelper处理掉一整级的章节)
  arr.forEach(element => {
    if (element.level === deepHelper.level) {
      deepHelper.wrapId++
      element.selfId = deepHelper.wrapId
      const chapter = { [label]: element.title, [children]: [] }
      element.chapter = chapter // 以后子孙元素要进这个章节的！！

      //! element.paraentId : 注意element.paraentId值如果为0时 不会走eles
      // if (!element.paraentId) {
      if (element.paraentId === undefined) {
        deepHelper.chapters.push(chapter)
      } else {
        // 如何找到对应的父级 将对应的章节放入对应父级的children中 !!!!!!!!!
        originArr.sort((a, b) => { return a.level - b.level }) // 修正顺序
        originArr[element.paraentId].chapter[children].push(chapter)
      }
      element.done = true
    } else {
      // 给所有的子孙元素打标记
      element.paraentId = deepHelper.wrapId
    }
  })

  deepHelper(arr.filter(item => !item.done), label, children, originArr)
}

export default deepHelper
